home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows Expert
/
Windows Expert.iso
/
program
/
tpw_mmex.zip
/
MMTYPES.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-12-18
|
53KB
|
1,397 lines
{***********************************************************************}
{ }
{ Microsoft Multimedia System Structures and Constants }
{ Links to the mmsystem.dll in the Microsoft Multimedia Extensions }
{ Converted by Steve Milton @ ISOMEDIA, Inc. for use with }
{ Borland's Turbo Pascal for Windows }
{ }
{ These units are provided as-is with no warranty. Any damages to }
{ equipment, peripherals, software, or anything else is solely the }
{ responsibility of the user. }
{ }
{ Microsoft Multimedia Extensions is a trademark of Microsoft, Corp. }
{ Turbo Pascal for Windows is a trademakr of Borland International }
{ }
{***********************************************************************}
UNIT MMTypes;
INTERFACE
uses WinTypes;
CONST
SND_SYNC = $0000; { play synchronously (default) }
SND_ASYNC = $0001; { play asynchronously }
SND_NODEFAULT = $0002; { don't use default sound }
SND_MEMORY = $0004; { lpszSoundName points to a memory file }
SND_LOOP = $0008; { loop the sound until next sndPlaySound }
SND_NOSTOP = $0010; { don't stop any currently playing sound }
MAXPNAMELEN = 32; { max product name length (including NULL) }
MAXERRORLENGTH = 128; { max error text length (including NULL) }
TIME_MS = $0001; { time in milliseconds }
TIME_SAMPLES = $0002; { number of wave samples }
TIME_BYTES = $0004; { current byte offset }
TIME_SMPTE = $0008; { SMPTE time }
TIME_MIDI = $0010; { MIDI time }
{****************************************************************************
Multimedia Extensions Window Messages
***************************************************************************}
MM_JOY1MOVE = $03A0; { joystick }
MM_JOY2MOVE = $03A1;
MM_JOY1ZMOVE = $03A2;
MM_JOY2ZMOVE = $03A3;
MM_JOY1BUTTONDOWN = $03B5;
MM_JOY2BUTTONDOWN = $03B6;
MM_JOY1BUTTONUP = $03B7;
MM_JOY2BUTTONUP = $03B8;
MM_MCINOTIFY = $03B9; { MCI }
MM_MCISYSTEM_STRING = $03CA;
MM_WOM_OPEN = $03BB; { waveform output }
MM_WOM_CLOSE = $03BC;
MM_WOM_DONE = $03BD;
MM_WIM_OPEN = $03BE; { waveform input }
MM_WIM_CLOSE = $03BF;
MM_WIM_DATA = $03C0;
MM_MIM_OPEN = $03C1; { MIDI input }
MM_MIM_CLOSE = $03C2;
MM_MIM_DATA = $03C3;
MM_MIM_LONGDATA = $03C4;
MM_MIM_ERROR = $03C5;
MM_MIM_LONGERROR = $03C6;
MM_MOM_OPEN = $03C7; { MIDI output }
MM_MOM_CLOSE = $03C8;
MM_MOM_DONE = $03C9;
{***************************************************************************
String resource number bases (internal use)
***************************************************************************}
MMSYSERR_BASE = 0;
WAVERR_BASE = 32;
MIDIERR_BASE = 64;
TIMERR_BASE = 96;
JOYERR_BASE = 160;
MCIERR_BASE = 256;
MCI_STRING_OFFSET = 512;
MCI_VD_OFFSET = 1024;
MCI_CD_OFFSET = 1088;
MCI_WAVE_OFFSET = 1152;
MCI_SEQ_OFFSET = 1216;
{***************************************************************************
General error return values
***************************************************************************}
{ general error return values }
MMSYSERR_NOERROR = 0; { no error }
MMSYSERR_ERROR = (MMSYSERR_BASE + 1); { unspecified error }
MMSYSERR_BADDEVICEID= (MMSYSERR_BASE + 2); { device ID out of range }
MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3); { driver failed enable }
MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4); { device already allocated}
MMSYSERR_INVALHANDLE= (MMSYSERR_BASE + 5); { device handle is invalid}
MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6); { no device driver present}
MMSYSERR_NOMEM = (MMSYSERR_BASE + 7); { memory allocation error }
MMSYSERR_NOTSUPPORTED= (MMSYSERR_BASE + 8); { function isn't supported}
MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9); { error value out of range}
MMSYSERR_LASTERROR = (MMSYSERR_BASE + 9); { last error in range }
{***************************************************************************
Installable driver support
***************************************************************************}
{ return values from DriverProc() function }
DRV_CANCEL = $0000;
DRV_OK = $0001;
DRV_RESTART = $0002;
{ messages sent to DriverProc() function }
DRV_LOAD = $0001;
DRV_ENABLE = $0002;
DRV_OPEN = $0003;
DRV_CLOSE = $0004;
DRV_DISABLE = $0005;
DRV_FREE = $0006;
DRV_CONFIGURE = $0007;
DRV_QUERYCONFIGURE = $0008;
DRV_INSTALL = $0009;
DRV_REMOVE = $000A;
DRV_RESERVED = $0800;
DRV_MCI_FIRST = DRV_RESERVED;
DRV_MCI_LAST = (DRV_RESERVED + $0FFF);
DRV_USER = $4000;
{***************************************************************************
Driver callback support
***************************************************************************}
{ flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and }
{ midiOutOpen() to specify the type of the dwCallback parameter. }
CALLBACK_TYPEMASK = $00070000; { callback type mask }
CALLBACK_NULL = $00000000; { no callback }
CALLBACK_WINDOW = $00010000; { dwCallback is a HWND }
CALLBACK_TASK = $00020000; { dwCallback is a HTASK }
CALLBACK_FUNCTION = $00030000; { dwCallback is a FARPROC }
{***************************************************************************
Manufacturer and product IDs
Used with wMid and wPid fields in WAVEOUTCAPS, WAVEINCAPS,
MIDIOUTCAPS, MIDIINCAPS, AUXCAPS, JOYCAPS structures.
***************************************************************************}
{ manufacturer IDs }
MM_MICROSOFT = 1; { Microsoft Corp.
{ product IDs }
MM_MIDI_MAPPER = 1; { MIDI Mapper }
MM_WAVE_MAPPER = 2; { Wave Mapper }
MM_SNDBLST_MIDIOUT = 3; { Sound Blaster MIDI output port }
MM_SNDBLST_MIDIIN = 4; { Sound Blaster MIDI input port }
MM_SNDBLST_SYNTH = 5; { Sound Blaster internal synthesizer }
MM_SNDBLST_WAVEOUT = 6; { Sound Blaster waveform output }
MM_SNDBLST_WAVEIN = 7; { Sound Blaster waveform input }
MM_ADLIB = 9; { Ad Lib-compatible synthesizer }
MM_MPU401_MIDIOUT = 10; { MPU401-compatible MIDI output port }
MM_MPU401_MIDIIN = 11; { MPU401-compatible MIDI input port }
MM_PC_JOYSTICK = 12; { Joystick adapter }
{ waveform audio error return values }
WAVERR_BADFORMAT = (WAVERR_BASE + 0); { unsupported wave format }
WAVERR_STILLPLAYING = (WAVERR_BASE + 1); { still something playing }
WAVERR_UNPREPARED = (WAVERR_BASE + 2); { header not prepared }
WAVERR_LASTERROR = (WAVERR_BASE + 2); { last error in range }
{ wave callback messages }
WOM_OPEN = MM_WOM_OPEN;
WOM_CLOSE = MM_WOM_CLOSE;
WOM_DONE = MM_WOM_DONE;
WIM_OPEN = MM_WIM_OPEN;
WIM_CLOSE = MM_WIM_CLOSE;
WIM_DATA = MM_WIM_DATA;
{ device ID for wave device mapper }
WAVE_MAPPER = -1;
{ flags for dwFlags parameter in waveOutOpen() and waveInOpen() }
WAVE_FORMAT_QUERY = $0001;
{ flags for dwFlags field of WAVEHDR }
WHDR_DONE = $00000001; { done bit }
WHDR_PREPARED = $00000002; { set if this header has been prepared }
WHDR_BEGINLOOP = $00000004; { loop start block }
WHDR_ENDLOOP = $00000008; { loop end block }
WHDR_INQUEUE = $00000010; { reserved for driver }
{ flags for dwSupport field of WAVEOUTCAPS }
WAVECAPS_PITCH = $0001; { supports pitch control }
WAVECAPS_PLAYBACKRATE = $0002; { supports playback rate control }
WAVECAPS_VOLUME = $0004; { supports volume control }
WAVECAPS_LRVOLUME = $0008; { separate left-right volume control}
{ defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS }
WAVE_INVALIDFORMAT = $00000000; { invalid format }
WAVE_FORMAT_1M08 = $00000001; { 11.025 kHz, Mono, 8-bit }
WAVE_FORMAT_1S08 = $00000002; { 11.025 kHz, Stereo, 8-bit }
WAVE_FORMAT_1M16 = $00000004; { 11.025 kHz, Mono, 16-bit }
WAVE_FORMAT_1S16 = $00000008; { 11.025 kHz, Stereo, 16-bit }
WAVE_FORMAT_2M08 = $00000010; { 22.05 kHz, Mono, 8-bit }
WAVE_FORMAT_2S08 = $00000020; { 22.05 kHz, Stereo, 8-bit }
WAVE_FORMAT_2M16 = $00000040; { 22.05 kHz, Mono, 16-bit }
WAVE_FORMAT_2S16 = $00000080; { 22.05 kHz, Stereo, 16-bit }
WAVE_FORMAT_4M08 = $00000100; { 44.1 kHz, Mono, 8-bit }
WAVE_FORMAT_4S08 = $00000200; { 44.1 kHz, Stereo, 8-bit }
WAVE_FORMAT_4M16 = $00000400; { 44.1 kHz, Mono, 16-bit }
WAVE_FORMAT_4S16 = $00000800; { 44.1 kHz, Stereo, 16-bit }
{ flags for wFormatTag field of WAVEFORMAT }
WAVE_FORMAT_PCM = 1;
{ MIDI error return values }
MIDIERR_UNPREPARED =(MIDIERR_BASE + 0); { header not prepared }
MIDIERR_STILLPLAYING =(MIDIERR_BASE + 1); { still something playing }
MIDIERR_NOMAP =(MIDIERR_BASE + 2); { no current map }
MIDIERR_NOTREADY =(MIDIERR_BASE + 3); { hardware is still busy }
MIDIERR_NODEVICE =(MIDIERR_BASE + 4); { port no longer connected }
MIDIERR_LASTERROR =(MIDIERR_BASE + 4); { last error in range }
{ MIDI callback messages }
MIM_OPEN = MM_MIM_OPEN;
MIM_CLOSE = MM_MIM_CLOSE;
MIM_DATA = MM_MIM_DATA;
MIM_LONGDATA = MM_MIM_LONGDATA;
MIM_ERROR = MM_MIM_ERROR;
MIM_LONGERROR = MM_MIM_LONGERROR;
MOM_OPEN = MM_MOM_OPEN;
MOM_CLOSE = MM_MOM_CLOSE;
MOM_DONE = MM_MOM_DONE;
{ device ID for MIDI mapper }
MIDIMAPPER = (-1);
MOD_MIDIPORT = 1; { output port }
MOD_SYNTH = 2; { generic internal synth }
MOD_SQSYNTH = 3; { square wave internal synth }
MOD_FMSYNTH = 4; { FM internal synth }
MOD_MAPPER = 5; { MIDI mapper }
{ flags for dwSupport field of MIDIOUTCAPS structure }
MIDICAPS_VOLUME = $0001; { supports volume control }
MIDICAPS_LRVOLUME = $0002; { separate left-right volume control}
{ flags for dwFlags field of MIDIHDR structure }
MHDR_DONE = $00000001; { done bit }
MHDR_PREPARED = $00000002; { set if header prepared }
MHDR_INQUEUE = $00000004; { reserved for driver }
{ flags for wTechnology field in AUXCAPS structure }
AUXCAPS_CDAUDIO = 1; { audio from internal CD-ROM drive }
AUXCAPS_AUXIN = 2; { audio from auxiliary input jacks }
{ flags for dwSupport field in AUXCAPS structure }
AUXCAPS_VOLUME = $0001; { supports volume control }
AUXCAPS_LRVOLUME = $0002; { separate left-right volume control }
{ timer error return values }
TIMERR_NOERROR = (0); { no error }
TIMERR_NOCANDO = (TIMERR_BASE+1); { request not completed }
TIMERR_STRUCT = (TIMERR_BASE+33); { time struct size }
{ flags for wFlags parameter of timeSetEvent() function }
TIME_ONESHOT = 0; { program timer for single event }
TIME_PERIODIC = 1; { program for continuous periodic event }
{ joystick error return values }
JOYERR_NOERROR = (0); { no error }
JOYERR_PARMS = (JOYERR_BASE+5); { bad parameters }
JOYERR_NOCANDO = (JOYERR_BASE+6); { request not completed }
JOYERR_UNPLUGGED = (JOYERR_BASE+7); { joystick is unplugged }
{ constants used with JOYINFO structure and MM_JOY* messages }
JOY_BUTTON1 = $0001;
JOY_BUTTON2 = $0002;
JOY_BUTTON3 = $0004;
JOY_BUTTON4 = $0008;
JOY_BUTTON1CHG = $0100;
JOY_BUTTON2CHG = $0200;
JOY_BUTTON3CHG = $0400;
JOY_BUTTON4CHG = $0800;
{ joystick ID constants }
JOYSTICKID1 = 0;
JOYSTICKID2 = 1;
{ MMIO error return values }
MMIOERR_BASE = 256;
MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1); { file not found }
MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2); { out of memory }
MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3); { cannot open }
MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4); { cannot close }
MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5); { cannot read }
MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6); { cannot write }
MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7); { cannot seek }
MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8); { cannot expand file }
MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9); { chunk not found }
MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10); { file is unbuffered }
{ MMIO constants }
CFSEPCHAR = '+'; { compound file name separator char. }
{ bit field masks }
MMIO_RWMODE = $00000003; { open file for reading/writing/both }
MMIO_SHAREMODE = $00000070; { file sharing mode number }
{ constants for dwFlags field of MMIOINFO }
MMIO_CREATE = $00001000; { create new file (or truncate file) }
MMIO_DELETE = $00000200; { create new file (or truncate file) }
MMIO_ALLOCBUF = $00010000; { mmioOpen() should allocate a buffer}
MMIO_DIRTY = $10000000; { I/O buffer is dirty }
{ read/write mode numbers (bit field MMIO_RWMODE) }
MMIO_READ = $00000000; { open file for reading only }
MMIO_WRITE = $00000001; { open file for writing only }
MMIO_READWRITE = $00000002; { open file for reading and writing }
{ share mode numbers (bit field MMIO_SHAREMODE) }
MMIO_COMPAT = $00000000; { compatibility mode }
MMIO_EXCLUSIVE = $00000010; { exclusive-access mode }
MMIO_DENYWRITE = $00000020; { deny writing to other processes }
MMIO_DENYREAD = $00000030; { deny reading to other processes }
MMIO_DENYNONE = $00000040; { deny nothing to other processes }
{ various MMIO flags }
MMIO_FHOPEN = $0010; { mmioClose: keep file handle open }
MMIO_EMPTYBUF = $0010; { mmioFlush: empty the I/O buffer }
MMIO_TOUPPER = $0010; { mmioStringToFOURCC: to u-case }
MMIO_INSTALLPROC = $00010000; { mmioInstallIOProc: install MMIOProc}
MMIO_REMOVEPROC = $00020000; { mmioInstallIOProc: remove MMIOProc }
MMIO_FINDPROC = $00040000; { mmioInstallIOProc: find an MMIOProc}
MMIO_FINDCHUNK = $0010; { mmioDescend: find a chunk by ID }
MMIO_FINDRIFF = $0020; { mmioDescend: find a LIST chunk }
MMIO_FINDLIST = $0040; { mmioDescend: find a RIFF chunk }
MMIO_CREATERIFF = $0020; { mmioCreateChunk: make a LIST chunk }
MMIO_CREATELIST = $0040; { mmioCreateChunk: make a RIFF chunk }
{ message numbers for MMIOPROC I/O procedure functions }
MMIOM_READ = MMIO_READ; { read }
MMIOM_WRITE = MMIO_WRITE; { write }
MMIOM_SEEK = 2; { seek to a new position in file }
MMIOM_OPEN = 3; { open file }
MMIOM_CLOSE = 4; { close file }
MMIOM_WRITEFLUSH = 5; { write and flush }
MMIOM_USER = $8000; { beginning of user-defined messages }
{ flags for mmioSeek() }
SEEK_SET = 0; { seek to an absolute position }
SEEK_CUR = 1; { seek relative to current position }
SEEK_END = 2; { seek relative to end of file }
{ other constants }
MMIO_DEFAULTBUFFER = 8192; { default buffer size }
{ MCI error return values }
MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1);
MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3);
MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5);
MCIERR_HARDWARE = (MCIERR_BASE + 6);
MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7);
MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8);
MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9);
MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10);
MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11);
MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12);
MCIERR_MISSING_STRING_ARGUMENT= (MCIERR_BASE + 13);
MCIERR_BAD_INTEGER = (MCIERR_BASE + 14);
MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15);
MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16);
MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17);
MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18);
MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19);
MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20);
MCIERR_INTERNAL = (MCIERR_BASE + 21);
MCIERR_DRIVER = (MCIERR_BASE + 22);
MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23);
MCIERR_MULTIPLE = (MCIERR_BASE + 24);
MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25);
MCIERR_OUTOFRANGE = (MCIERR_BASE + 26);
MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28);
MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30);
MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31);
MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32);
MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33);
MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34);
MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35);
MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36);
MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37);
MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38);
MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39);
MCIERR_INVALID_FILE = (MCIERR_BASE + 40);
MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41);
MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42);
MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43);
MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44);
MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45);
MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46);
MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47);
MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48);
MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49);
MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64);
MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65);
MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66);
MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67);
MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68);
MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69);
MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70);
MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71);
MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72);
MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73);
MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80);
MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81);
MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82);
MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83);
MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84);
MCIERR_SEQ_TIMER = (MCIERR_BASE + 85);
MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86);
MCIERR_NO_WINDOW = (MCIERR_BASE + 90);
MCIERR_CREATEWINDOW = (MCIERR_BASE + 91);
MCIERR_FILE_READ = (MCIERR_BASE + 92);
MCIERR_FILE_WRITE = (MCIERR_BASE + 93);
{ all custom device driver errors must be >= than this value }
MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256);
{ MCI command message identifiers }
MCI_OPEN = $0803;
MCI_CLOSE = $0804;
MCI_ESCAPE = $0805;
MCI_PLAY = $0806;
MCI_SEEK = $0807;
MCI_STOP = $0808;
MCI_PAUSE = $0809;
MCI_INFO = $080A;
MCI_GETDEVCAPS = $080B;
MCI_SPIN = $080C;
MCI_SET = $080D;
MCI_STEP = $080E;
MCI_RECORD = $080F;
MCI_SYSINFO = $0810;
MCI_BREAK = $0811;
MCI_SOUND = $0812;
MCI_SAVE = $0813;
MCI_STATUS = $0814;
MCI_CUE = $0830;
MCI_REALIZE = $0840;
MCI_WINDOW = $0841;
MCI_PUT = $0842;
MCI_WHERE = $0843;
MCI_FREEZE = $0844;
MCI_UNFREEZE = $0845;
MCI_LOAD = $0850;
MCI_CUT = $0851;
MCI_COPY = $0852;
MCI_PASTE = $0853;
MCI_UPDATE = $0854;
MCI_RESUME = $0855;
MCI_DELETE = $0856;
{ all custom MCI command messages must be >= than this value }
MCI_USER_MESSAGES = ($0400 + DRV_MCI_FIRST);
{ device ID for "all devices" }
MCI_ALL_DEVICE_ID = $FFFF;
{ constants for predefined MCI device types }
MCI_DEVTYPE_VCR = (MCI_STRING_OFFSET + 1);
MCI_DEVTYPE_VIDEODISC = (MCI_STRING_OFFSET + 2);
MCI_DEVTYPE_OVERLAY = (MCI_STRING_OFFSET + 3);
MCI_DEVTYPE_CD_AUDIO = (MCI_STRING_OFFSET + 4);
MCI_DEVTYPE_DAT = (MCI_STRING_OFFSET + 5);
MCI_DEVTYPE_SCANNER = (MCI_STRING_OFFSET + 6);
MCI_DEVTYPE_ANIMATION = (MCI_STRING_OFFSET + 7);
MCI_DEVTYPE_DIGITAL_VIDEO = (MCI_STRING_OFFSET + 8);
MCI_DEVTYPE_OTHER = (MCI_STRING_OFFSET + 9);
MCI_DEVTYPE_WAVEFORM_AUDIO = (MCI_STRING_OFFSET + 10);
MCI_DEVTYPE_SEQUENCER = (MCI_STRING_OFFSET + 11);
MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR;
MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER;
{ return values for 'status mode' command }
MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12);
MCI_MODE_STOP = (MCI_STRING_OFFSET + 13);
MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14);
MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15);
MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16);
MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17);
MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18);
{ constants used in 'set time format' and 'status time format' commands}
MCI_FORMAT_MILLISECONDS = 0;
MCI_FORMAT_HMS = 1;
MCI_FORMAT_MSF = 2;
MCI_FORMAT_FRAMES = 3;
MCI_FORMAT_SMPTE_24 = 4;
MCI_FORMAT_SMPTE_25 = 5;
MCI_FORMAT_SMPTE_30 = 6;
MCI_FORMAT_SMPTE_30DROP = 7;
MCI_FORMAT_BYTES = 8;
MCI_FORMAT_SAMPLES = 9;
MCI_FORMAT_TMSF = 10;
{ flags for wParam of MM_MCINOTIFY message }
MCI_NOTIFY_SUCCESSFUL = $0001;
MCI_NOTIFY_SUPERSEDED = $0002;
MCI_NOTIFY_ABORTED = $0004;
MCI_NOTIFY_FAILURE = $0008;
{ common flags for dwFlags parameter of MCI command messages }
MCI_NOTIFY = $00000001;
MCI_WAIT = $00000002;
MCI_FROM = $00000004;
MCI_TO = $00000008;
MCI_TRACK = $00000010;
{ flags for dwFlags parameter of MCI_OPEN command message }
MCI_OPEN_SHAREABLE = $00000100;
MCI_OPEN_ELEMENT = $00000200;
MCI_OPEN_ALIAS = $00000400;
MCI_OPEN_ELEMENT_ID = $00000800;
MCI_OPEN_TYPE_ID = $00001000;
MCI_OPEN_TYPE = $00002000;
{ flags for dwFlags parameter of MCI_SEEK command message }
MCI_SEEK_TO_START = $00000100;
MCI_SEEK_TO_END = $00000200;
{ flags for dwFlags parameter of MCI_STATUS command message }
MCI_STATUS_ITEM = $00000100;
MCI_STATUS_START = $00000200;
{ flags for dwItem field of the MCI_STATUS_PARMS parameter block }
MCI_STATUS_LENGTH = $00000001;
MCI_STATUS_POSITION = $00000002;
MCI_STATUS_NUMBER_OF_TRACKS = $00000003;
MCI_STATUS_MODE = $00000004;
MCI_STATUS_MEDIA_PRESENT = $00000005;
MCI_STATUS_TIME_FORMAT = $00000006;
MCI_STATUS_READY = $00000007;
MCI_STATUS_CURRENT_TRACK = $00000008;
{ flags for dwFlags parameter of MCI_INFO command message }
MCI_INFO_PRODUCT = $00000100;
MCI_INFO_FILE = $00000200;
{ flags for dwFlags parameter of MCI_GETDEVCAPS command message }
MCI_GETDEVCAPS_ITEM = $00000100;
{ flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block }
MCI_GETDEVCAPS_CAN_RECORD = $00000001;
MCI_GETDEVCAPS_HAS_AUDIO = $00000002;
MCI_GETDEVCAPS_HAS_VIDEO = $00000003;
MCI_GETDEVCAPS_DEVICE_TYPE = $00000004;
MCI_GETDEVCAPS_USES_FILES = $00000005;
MCI_GETDEVCAPS_COMPOUND_DEVICE = $00000006;
MCI_GETDEVCAPS_CAN_EJECT = $00000007;
MCI_GETDEVCAPS_CAN_PLAY = $00000008;
MCI_GETDEVCAPS_CAN_SAVE = $00000009;
{ flags for dwFlags parameter of MCI_SYSINFO command message }
MCI_SYSINFO_QUANTITY = $00000100;
MCI_SYSINFO_OPEN = $00000200;
MCI_SYSINFO_NAME = $00000400;
MCI_SYSINFO_INSTALLNAME = $00000800;
{ flags for dwFlags parameter of MCI_SET command message }
MCI_SET_DOOR_OPEN = $00000100;
MCI_SET_DOOR_CLOSED = $00000200;
MCI_SET_TIME_FORMAT = $00000400;
MCI_SET_AUDIO = $00000800;
MCI_SET_VIDEO = $00001000;
MCI_SET_ON = $00002000;
MCI_SET_OFF = $00004000;
{ flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS }
MCI_SET_AUDIO_ALL = $00000000;
MCI_SET_AUDIO_LEFT = $00000001;
MCI_SET_AUDIO_RIGHT = $00000002;
{ flags for dwFlags parameter of MCI_BREAK command message }
MCI_BREAK_KEY = $00000100;
MCI_BREAK_HWND = $00000200;
MCI_BREAK_OFF = $00000400;
{ flags for dwFlags parameter of MCI_RECORD command message }
MCI_RECORD_INSERT = $00000100;
MCI_RECORD_OVERWRITE = $00000200;
{ flags for dwFlags parameter of MCI_SOUND command message }
MCI_SOUND_NAME = $00000100;
{ flags for dwFlags parameter of MCI_SAVE command message }
MCI_SAVE_FILE = $00000100;
{ flags for dwFlags parameter of MCI_LOAD command message }
MCI_LOAD_FILE = $00000100;
{ flag for dwReturn field of MCI_STATUS_PARMS }
{ MCI_STATUS command, (dwItem == MCI_STATUS_MODE) }
MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1);
{ flag for dwReturn field of MCI_STATUS_PARMS }
{ MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE) }
MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2);
MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3);
MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4);
MCI_VD_FORMAT_TRACK = $4001;
{ flags for dwFlags parameter of MCI_PLAY command message }
MCI_VD_PLAY_REVERSE = $00010000;
MCI_VD_PLAY_FAST = $00020000;
MCI_VD_PLAY_SPEED = $00040000;
MCI_VD_PLAY_SCAN = $00080000;
MCI_VD_PLAY_SLOW = $00100000;
{ flag for dwFlags parameter of MCI_SEEK command message }
MCI_VD_SEEK_REVERSE = $00010000;
{ flags for dwItem field of MCI_STATUS_PARMS parameter block }
MCI_VD_STATUS_SPEED = $00004002;
MCI_VD_STATUS_FORWARD = $00004003;
MCI_VD_STATUS_MEDIA_TYPE = $00004004;
MCI_VD_STATUS_SIDE = $00004005;
MCI_VD_STATUS_DISC_SIZE = $00004006;
{ flags for dwFlags parameter of MCI_GETDEVCAPS command message }
MCI_VD_GETDEVCAPS_CLV = $00010000;
MCI_VD_GETDEVCAPS_CAV = $00020000;
MCI_VD_SPIN_UP = $00010000;
MCI_VD_SPIN_DOWN = $00020000;
{ flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block }
MCI_VD_GETDEVCAPS_CAN_REVERSE = $00004002;
MCI_VD_GETDEVCAPS_FAST_RATE = $00004003;
MCI_VD_GETDEVCAPS_SLOW_RATE = $00004004;
MCI_VD_GETDEVCAPS_NORMAL_RATE = $00004005;
{ flags for the dwFlags parameter of MCI_STEP command message }
MCI_VD_STEP_FRAMES = $00010000;
MCI_VD_STEP_REVERSE = $00020000;
{ flag for the MCI_ESCAPE command message }
MCI_VD_ESCAPE_STRING = $00000100;
{ flags for the dwFlags parameter of MCI_OPEN command message }
MCI_WAVE_OPEN_BUFFER = $00010000;
{ flags for the dwFlags parameter of MCI_SET command message }
MCI_WAVE_SET_FORMATTAG = $00010000;
MCI_WAVE_SET_CHANNELS = $00020000;
MCI_WAVE_SET_SAMPLESPERSEC = $00040000;
MCI_WAVE_SET_AVGBYTESPERSEC = $00080000;
MCI_WAVE_SET_BLOCKALIGN = $00100000;
MCI_WAVE_SET_BITSPERSAMPLE = $00200000;
{ flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages}
MCI_WAVE_INPUT = $00400000;
MCI_WAVE_OUTPUT = $00800000;
{ flags for the dwItem field of MCI_STATUS_PARMS parameter block }
MCI_WAVE_STATUS_FORMATTAG = $00004001;
MCI_WAVE_STATUS_CHANNELS = $00004002;
MCI_WAVE_STATUS_SAMPLESPERSEC = $00004003;
MCI_WAVE_STATUS_AVGBYTESPERSEC = $00004004;
MCI_WAVE_STATUS_BLOCKALIGN = $00004005;
MCI_WAVE_STATUS_BITSPERSAMPLE = $00004006;
MCI_WAVE_STATUS_LEVEL = $00004007;
{ flags for the dwFlags parameter of MCI_SET command message }
MCI_WAVE_SET_ANYINPUT = $04000000;
MCI_WAVE_SET_ANYOUTPUT = $08000000;
{ flags for the dwFlags parameter of MCI_GETDEVCAPS command message }
MCI_WAVE_GETDEVCAPS_INPUTS = $00004001;
MCI_WAVE_GETDEVCAPS_OUTPUTS = $00004002;
{ }
{ MCI extensions for MIDI sequencer devices }
{ }
{ flags for the dwReturn field of MCI_STATUS_PARMS parameter block }
{ MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE) }
MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET);
MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET);
MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET);
MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET);
MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET);
{ flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block }
{ MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER) }
MCI_SEQ_FORMAT_SONGPTR = $4001;
MCI_SEQ_FILE = $4002;
MCI_SEQ_MIDI = $4003;
MCI_SEQ_SMPTE = $4004;
MCI_SEQ_NONE = 65533;
{ flags for the dwItem field of MCI_STATUS_PARMS parameter block }
MCI_SEQ_STATUS_TEMPO = $00004002;
MCI_SEQ_STATUS_PORT = $00004000;
MCI_SEQ_STATUS_SLAVE = $00004007;
MCI_SEQ_STATUS_MASTER = $00004008;
MCI_SEQ_STATUS_OFFSET = $00004009;
MCI_SEQ_STATUS_DIVTYPE = $0000400A;
{ flags for the dwFlags parameter of MCI_SET command message }
MCI_SEQ_SET_TEMPO = $00010000;
MCI_SEQ_SET_PORT = $00020000;
MCI_SEQ_SET_SLAVE = $00040000;
MCI_SEQ_SET_MASTER = $00080000;
MCI_SEQ_SET_OFFSET = $01000000;
{ }
{ MCI extensions for animation devices }
{ }
{ flags for dwFlags parameter of MCI_OPEN command message }
MCI_ANIM_OPEN_WS = $00010000;
MCI_ANIM_OPEN_PARENT = $00020000;
MCI_ANIM_OPEN_NOSTATIC = $00040000;
{ flags for dwFlags parameter of MCI_PLAY command message }
MCI_ANIM_PLAY_SPEED = $00010000;
MCI_ANIM_PLAY_REVERSE = $00020000;
MCI_ANIM_PLAY_FAST = $00040000;
MCI_ANIM_PLAY_SLOW = $00080000;
MCI_ANIM_PLAY_SCAN = $00100000;
{ flags for dwFlags parameter of MCI_STEP command message }
MCI_ANIM_STEP_REVERSE = $00010000;
MCI_ANIM_STEP_FRAMES = $00020000;
{ flags for dwItem field of MCI_STATUS_PARMS parameter block }
MCI_ANIM_STATUS_SPEED = $00004001;
MCI_ANIM_STATUS_FORWARD = $00004002;
MCI_ANIM_STATUS_HWND = $00004003;
MCI_ANIM_STATUS_HPAL = $00004004;
MCI_ANIM_STATUS_STRETCH = $00004005;
{ flags for the dwFlags parameter of MCI_INFO command message }
MCI_ANIM_INFO_TEXT = $00010000;
{ flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block }
MCI_ANIM_GETDEVCAPS_CAN_REVERSE = $00004001;
MCI_ANIM_GETDEVCAPS_FAST_RATE = $00004002;
MCI_ANIM_GETDEVCAPS_SLOW_RATE = $00004003;
MCI_ANIM_GETDEVCAPS_NORMAL_RATE = $00004004;
MCI_ANIM_GETDEVCAPS_PALETTES = $00004006;
MCI_ANIM_GETDEVCAPS_CAN_STRETCH = $00004007;
MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = $00004008;
{ flags for the MCI_REALIZE command message }
MCI_ANIM_REALIZE_NORM = $00010000;
MCI_ANIM_REALIZE_BKGD = $00020000;
{ flags for dwFlags parameter of MCI_WINDOW command message }
MCI_ANIM_WINDOW_HWND = $00010000;
MCI_ANIM_WINDOW_STATE = $00040000;
MCI_ANIM_WINDOW_TEXT = $00080000;
MCI_ANIM_WINDOW_ENABLE_STRETCH = $00100000;
MCI_ANIM_WINDOW_DISABLE_STRETCH = $00200000;
{ flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block }
{ MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND) }
MCI_ANIM_WINDOW_DEFAULT = $00000000;
{ flags for dwFlags parameter of MCI_PUT command message }
MCI_ANIM_RECT = $00010000;
MCI_ANIM_PUT_SOURCE = $00020000;
MCI_ANIM_PUT_DESTINATION = $00040000;
{ flags for dwFlags parameter of MCI_WHERE command message }
MCI_ANIM_WHERE_SOURCE = $00020000;
MCI_ANIM_WHERE_DESTINATION = $00040000;
{ flags for dwFlags parameter of MCI_UPDATE command message }
MCI_ANIM_UPDATE_HDC = $00020000;
{ }
{ MCI extensions for video overlay devices }
{ }
{ flags for dwFlags parameter of MCI_OPEN command message }
MCI_OVLY_OPEN_WS = $00010000;
MCI_OVLY_OPEN_PARENT = $00020000;
{ flags for dwFlags parameter of MCI_STATUS command message }
MCI_OVLY_STATUS_HWND = $00004001;
MCI_OVLY_STATUS_STRETCH = $00004002;
{ flags for dwFlags parameter of MCI_INFO command message }
MCI_OVLY_INFO_TEXT = $00010000;
{ flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block }
MCI_OVLY_GETDEVCAPS_CAN_STRETCH = $00004001;
MCI_OVLY_GETDEVCAPS_CAN_FREEZE = $00004002;
MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = $00004003;
{ flags for dwFlags parameter of MCI_WINDOW command message }
MCI_OVLY_WINDOW_HWND = $00010000;
MCI_OVLY_WINDOW_STATE = $00040000;
MCI_OVLY_WINDOW_TEXT = $00080000;
MCI_OVLY_WINDOW_ENABLE_STRETCH = $00100000;
MCI_OVLY_WINDOW_DISABLE_STRETCH = $00200000;
{ flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block }
MCI_OVLY_WINDOW_DEFAULT = $00000000;
{ flags for dwFlags parameter of MCI_PUT command message }
MCI_OVLY_RECT = $00010000;
MCI_OVLY_PUT_SOURCE = $00020000;
MCI_OVLY_PUT_DESTINATION = $00040000;
MCI_OVLY_PUT_FRAME = $00080000;
MCI_OVLY_PUT_VIDEO = $00100000;
{ flags for dwFlags parameter of MCI_WHERE command message }
MCI_OVLY_WHERE_SOURCE = $00020000;
MCI_OVLY_WHERE_DESTINATION = $00040000;
MCI_OVLY_WHERE_FRAME = $00080000;
MCI_OVLY_WHERE_VIDEO = $00100000;
TYPE
LP_Longint = ^Longint;
LP_WORD = ^WORD;
FOURCC = LONGINT;
H_PSTR = PChar;
VERSION = WORD;
LP_WAVEOUTCAPS = ^WAVEOUTCAPS;
WAVEOUTCAPS = record
wMid : WORD;
wPid : WORD;
vDriverVersion : VERSION;
szPname : PChar;
dwFormats : longint;
wChannels : WORD;
dwSupport : longint;
end;
H_WAVEOUT = THandle;
LPH_WAVEOUT = ^H_WAVEOUT;
LP_WAVEFORMAT = ^WAVEFORMAT;
WAVEFORMAT = record
wFormatTag : WORD;
nChannels : WORD;
nSamplesPerSec : LONGINT;
nAvgBytesPerSec : LONGINT;
nBlockAlign : WORD;
end;
LP_WAVEHDR = ^WAVEHDR;
WAVEHDR = record
lpData : pointer;
dwBufferLength : longint;
dwBytesRecorded : Longint;
dwUser : longint;
dwFlags : longint;
dwLoops : longint;
lpNext : pointer;
reserved : longint;
end;
{ MMTIME SUB RECORDS }
smpte_rec = record
hour, min, sec, frame, fps, dummy : BYTE;
end;
midi_rec = record
songptrpos : pointer;
end;
u_rec = record
ms : longint; { milliseconds}
sample : longint; { samples}
cb : longint; { byte count}
SMPTE : smpte_rec;
midi : midi_rec;
end;
LP_MMTIME = ^MMTIME;
MMTIME = record
wType : WORD; { indicates the contents of the union}
u : u_rec;
end;
LP_WAVEINCAPS = ^WAVEINCAPS;
WAVEINCAPS = record
wMid : WORD;
wPid : WORD;
vDriverVersion : VERSION;
szPname : PChar;
dwFormats : LONGINT;
wChannels : WORD;
end;
LPH_WAVEIN = ^H_WAVEIN;
H_WAVEIN = THandle;
LP_MIDIOUTCAPS = ^MIDIOUTCAPS;
MIDIOUTCAPS = record
wMid : WORD;
wPid : WORD;
vDriverVersion : VERSION;
szPname : PChar;
wTechnology : WORD;
wVoices : WORD;
wNotes : WORD;
wChannelMask : WORD;
dwSupport : LONGINT;
end;
LP_HMIDIOUT = ^H_MIDIOUT;
H_MIDIOUT = THandle;
LP_MIDIHDR = ^MIDIHDR;
MIDIHDR = record
lpData : pointer;
dwBufferLength : longint;
dwBytesRecorded : longint;
dwUser : longint;
dwFlags : longint;
lpNext : pointer;
reserved : longint;
end;
LP_MIDIINCAPS = ^MIDIINCAPS;
MIDIINCAPS = record
wMid : WORD;
wPid : WORD;
vDriverVersion : VERSION;
szPname : PChar;
end;
LPH_MIDIIN = ^H_MIDIIN;
H_MIDIIN = THandle;
LP_AUXCAPS = ^AUXCAPS;
AUXCAPS = record
wMid : WORD;
wPid : WORD;
vDriverVersion : VERSION;
szPname : PChar;
wTechnology : WORD;
dwSupport : longint;
end;
LP_TIMECALLBACK = TFarProc;
{ pointer to a function with the following syntax:
function TimerCallBack(
idTimer : WORD; // Timer ID
msg : WORD; // not used
dwUser : LONGINT; // User-instance data
dw1, dw2 : LONGINT) : WORD; EXPORT; // not used
return is not utilized.
}
LP_TIMECAPS = ^TIMECAPS;
TIMECAPS = record
wPeriodMin : WORD;
wPeriodMax : WORD;
end;
LP_JOYCAPS = ^JOYCAPS;
JOYCAPS = record
wMid : WORD;
wPid : WORD;
szPname : PChar;
wXmin : WORD;
wXmax : WORD;
wYmin : WORD;
wYmax : WORD;
wZmin : WORD;
wZmax : WORD;
wNumButtons : WORD;
wPeriodMin : WORD;
wPeriodMax : WORD;
end;
LP_JOYINFO = ^JOYINFO;
JOYINFO = record
wXpos : WORD;
wYpos : WORD;
wZpos : WORD;
wButtons : WORD;
end;
LP_MMIOPROC = TFarProc;
H_MMIO = THandle;
LP_MMIOINFO = ^MMIOINFO;
MMIOINFO = record
{ general fields }
dwFlags : longint; { general status flags }
fccIOProc : FOURCC; { pointer to I/O procedure }
pIOProc : LP_MMIOPROC; { pointer to I/O procedure }
wErrorRet : WORD; { place for error to be returned }
wReserved : WORD; { for structure alignment }
{ fields maintained by MMIO functions during buffered I/O}
cchBuffer : LONGINT; { size of I/O buffer (or 0L) }
pchBuffer : H_PSTR; { start of I/O buffer (or NULL) }
pchNext : H_PSTR; { pointer to next byte to read/write }
pchEndRead : H_PSTR; { pointer to last valid byte to read }
pchEndWrite : H_PSTR; { pointer to last byte to write }
lBufOffset : longint; { disk offset of start of buffer }
{ fields maintained by I/O procedure}
lDiskOffset : longint; { disk offset of next read or write }
adwInfo : array [1..3] of longint; { data specific to type of MMIOPROC}
{ other fields maintained by MMIO}
dwReserved1 : longint; { reserved for MMIO use }
dwReserved2 : longint; { reserved for MMIO use }
hmmio : H_MMIO; { handle to open file }
end;
LP_MMCKINFO = ^MMCKINFO;
MMCKINFO = record
ckid : FOURCC;
cksize : longint;
fcctype : FOURCC;
dwDataOffset : LONGINT;
dwFlags : LONGINT;
end;
YIELDPROC = TFarProc;
{ generic parameter block for MCI command messages with no special parameters}
LP_MCI_GENERIC_PARMS = ^MCI_GENERIC_PARMS;
MCI_GENERIC_PARMS = record
dwCallBack : LONGINT;
end;
{ parameter block for MCI_OPEN command message}
MCI_OPEN_PARMS = record
dwCallback : LONGINT;
wDeviceID : WORD;
wReserved0 : WORD;
lpstrDeviceType : POINTER;
lpstrElementName : POINTER;
lpstrAlias : POINTER;
end;
LP_MCI_OPEN_PARMS = ^MCI_OPEN_PARMS;
{ parameter block for MCI_PLAY command message}
MCI_PLAY_PARMS = record
dwCallback : LONGINT;
dwFrom : LONGINT;
dwTo : LONGINT;
end;
LP_MCI_PLAY_PARMS = ^MCI_PLAY_PARMS;
{ parameter block for MCI_SEEK command message}
MCI_SEEK_PARMS = record
dwCallback : LONGINT;
dwTo : LONGINT;
end;
LP_MCI_SEEK_PARMS = ^MCI_SEEK_PARMS;
{ parameter block for MCI_STATUS command message}
MCI_STATUS_PARMS = record
dwCallback : LONGINT;
dwReturn : LONGINT;
dwItem : LONGINT;
dwTrack : LONGINT;
end;
LP_MCI_STATUS_PARMS = ^MCI_STATUS_PARMS;
{ parameter block for MCI_INFO command message}
MCI_INFO_PARMS = record
dwCallback : LONGINT;
lpstrReturn : POINTER;
dwRetSize : LONGINT;
end;
LP_MCI_INFO_PARMS = ^MCI_INFO_PARMS;
{ parameter block for MCI_GETDEVCAPS command message}
MCI_GETDEVCAPS_PARMS = record
dwCallback : LONGINT;
dwReturn : LONGINT;
dwItem : LONGINT;
end;
LP_MCI_GETDEVCAPS_PARMS = ^MCI_GETDEVCAPS_PARMS;
{ parameter block for MCI_SYSINFO command message}
MCI_SYSINFO_PARMS = record
dwCallback : LONGINT;
lpstrReturn : POINTER;
dwRetSize : LONGINT;
dwNumber : LONGINT;
wDeviceType : WORD;
wReserved0 : WORD;
end;
LP_MCI_SYSINFO_PARMS = ^MCI_SYSINFO_PARMS;
{ parameter block for MCI_SET command message}
MCI_SET_PARMS = record
dwCallback : LONGINT;
dwTimeFormat : LONGINT;
dwAudio : LONGINT;
end;
LP_MCI_SET_PARMS = ^MCI_SET_PARMS;
{ parameter block for MCI_BREAK command message}
MCI_BREAK_PARMS = record
dwCallback : LONGINT;
nVirtKey : INTEGER ;
wReserved0 : WORD;
hwndBreak : HWND;
wReserved1 : WORD;
end;
LP_MCI_BREAK_PARMS = ^MCI_BREAK_PARMS;
{ parameter block for MCI_SOUND command message}
MCI_SOUND_PARMS = record
dwCallback : LONGINT;
lpstrSoundName : POINTER;
end;
LP_MCI_SOUND_PARMS = ^MCI_SOUND_PARMS;
{ parameter block for MCI_SAVE command message}
MCI_SAVE_PARMS = record
dwCallback : LONGINT;
lpfilename : POINTER;
end;
LP_MCI_SAVE_PARMS = ^MCI_SAVE_PARMS;
{ parameter block for MCI_LOAD command message}
MCI_LOAD_PARMS = record
dwCallback : LONGINT;
lpfilename : POINTER;
end;
LP_MCI_LOAD_PARMS = ^MCI_LOAD_PARMS;
{ parameter block for MCI_RECORD command message}
MCI_RECORD_PARMS = record
dwCallback : LONGINT;
dwFrom : LONGINT;
dwTo : LONGINT;
end;
LP_MCI_RECORD_PARMS = ^MCI_RECORD_PARMS;
{}
{ MCI extensions for videodisc devices}
{}
{ parameter block for MCI_PLAY command message}
MCI_VD_PLAY_PARMS = record
dwCallback : LONGINT;
dwFrom : LONGINT;
dwTo : LONGINT;
dwSpeed : LONGINT;
end;
LP_MCI_VD_PLAY_PARMS = ^MCI_VD_PLAY_PARMS;
{ parameter block for MCI_STEP command message}
MCI_VD_STEP_PARMS = record
dwCallback : LONGINT;
dwFrames : LONGINT;
end;
LP_MCI_VD_STEP_PARMS = ^MCI_VD_STEP_PARMS;
{ parameter block for MCI_ESCAPE command message}
MCI_VD_ESCAPE_PARMS = record
dwCallback : LONGINT;
lpstrCommand : POINTER;
end;
LP_MCI_VD_ESCAPE_PARMS = ^MCI_VD_ESCAPE_PARMS;
{}
{ MCI extensions for waveform audio devices}
{}
{ parameter block for MCI_OPEN command message}
MCI_WAVE_OPEN_PARMS = record
dwCallback : LONGINT;
wDeviceID : WORD;
wReserved0 : WORD;
lpstrDeviceType : POINTER;
lpstrElementName : POINTER;
lpstrAlias : POINTER;
dwBufferSeconds : LONGINT;
end;
LP_MCI_WAVE_OPEN_PARMS = ^MCI_WAVE_OPEN_PARMS;
{ parameter block for MCI_DELETE command message}
MCI_WAVE_DELETE_PARMS = record
dwCallback : LONGINT;
dwFrom : LONGINT;
dwTo : LONGINT;
end;
LP_MCI_WAVE_DELETE_PARMS = ^MCI_WAVE_DELETE_PARMS;
{ parameter block for MCI_SET command message}
MCI_WAVE_SET_PARMS = record
dwCallback : LONGINT;
dwTimeFormat : LONGINT;
dwAudio : LONGINT;
wInput : WORD;
wReserved0 : WORD;
wOutput : WORD;
wReserved1 : WORD;
wFormatTag : WORD;
wReserved2 : WORD;
nChannels : WORD;
wReserved3 : WORD;
nSamplesPerSec : LONGINT;
nAvgBytesPerSec : LONGINT;
nBlockAlign : WORD;
wReserved4 : WORD;
wBitsPerSample : WORD;
wReserved5 : WORD;
end;
LP_MCI_WAVE_SET_PARMS = ^MCI_WAVE_SET_PARMS;
{}
{ MCI extensions for MIDI sequencer devices}
{}
{ parameter block for MCI_SET command message}
MCI_SEQ_SET_PARMS = record
dwCallback : LONGINT;
dwTimeFormat : LONGINT;
dwAudio : LONGINT;
dwTempo : LONGINT;
dwPort : LONGINT;
dwSlave : LONGINT;
dwMaster : LONGINT;
dwOffset : LONGINT;
end;
LP_MCI_SEQ_SET_PARMS = ^MCI_SEQ_SET_PARMS;
{}
{ MCI extensions for animation devices}
{}
{ parameter block for MCI_OPEN command message}
MCI_ANIM_OPEN_PARMS = record
dwCallback : LONGINT;
wDeviceID : WORD;
wReserved0 : WORD;
lpstrDeviceType : POINTER;
lpstrElementName : POINTER;
lpstrAlias : POINTER;
dwStyle : LONGINT;
hWndParent : WORD;
wReserved1 : WORD;
end;
LP_MCI_ANIM_OPEN_PARMS = ^MCI_ANIM_OPEN_PARMS;
{ parameter block for MCI_PLAY command message}
MCI_ANIM_PLAY_PARMS = record
dwCallback : LONGINT;
dwFrom : LONGINT;
dwTo : LONGINT;
dwSpeed : LONGINT;
end;
LP_MCI_ANIM_PLAY_PARMS = ^MCI_ANIM_PLAY_PARMS;
{ parameter block for MCI_STEP command message}
MCI_ANIM_STEP_PARMS = record
dwCallback : LONGINT;
dwFrames : LONGINT;
end;
LP_MCI_ANIM_STEP_PARMS = ^MCI_ANIM_STEP_PARMS;
{ parameter block for MCI_WINDOW command message}
MCI_ANIM_WINDOW_PARMS = record
dwCallback : LONGINT;
hWnd : WORD;
wReserved1 : WORD;
nCmdShow : WORD;
wReserved2 : WORD;
lpstrText : POINTER;
end;
LP_MCI_ANIM_WINDOW_PARMS = ^MCI_ANIM_WINDOW_PARMS;
{ parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages}
MCI_ANIM_RECT_PARMS = record
dwCallback : LONGINT;
ptOffset : TPoint;
ptExtent : TPoint;
rc : TRect;
end;
LP_MCI_ANIM_RECT_PARMS = ^MCI_ANIM_RECT_PARMS;
{ parameter block for MCI_UPDATE PARMS}
MCI_ANIM_UPDATE_PARMS = record
dwCallback : LONGINT;
rc : TRect;
theDC : HDC ;
end;
LP_MCI_ANIM_UPDATE_PARMS = ^MCI_ANIM_UPDATE_PARMS;
{}
{ MCI extensions for video overlay devices}
{}
{ parameter block for MCI_OPEN command message}
MCI_OVLY_OPEN_PARMS = record
dwCallback : LONGINT;
wDeviceID : WORD;
wReserved0 : WORD;
lpstrDeviceType : POINTER;
lpstrElementName : POINTER;
lpstrAlias : POINTER;
dwStyle : LONGINT;
hWndParent : WORD;
wReserved1 : WORD;
end;
LP_MCI_OVLY_OPEN_PARMS = ^MCI_OVLY_OPEN_PARMS;
{ parameter block for MCI_WINDOW command message}
MCI_OVLY_WINDOW_PARMS = record
dwCallback : LONGINT;
hWnd : WORD;
wReserved1 : WORD;
nCmdShow : WORD;
wReserved2 : WORD;
lpstrText : POINTER;
end;
LP_MCI_OVLY_WINDOW_PARMS = ^MCI_OVLY_WINDOW_PARMS;
{ parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages}
MCI_OVLY_RECT_PARMS = record
dwCallback : LONGINT;
ptOffset : TPoint;
ptExtent : TPoint;
rc : TRect;
end;
LP_MCI_OVLY_RECT_PARMS = ^MCI_OVLY_RECT_PARMS;
{ parameter block for MCI_SAVE command message}
MCI_OVLY_SAVE_PARMS = record
dwCallback : LONGINT;
lpfilename : POINTER;
rc : TRect;
end;
LP_MCI_OVLY_SAVE_PARMS = ^MCI_OVLY_SAVE_PARMS;
{ parameter block for MCI_LOAD command message}
MCI_OVLY_LOAD_PARMS = record
dwCallback : LONGINT;
lpfilename : POINTER;
rc : TRect;
end;
LP_MCI_OVLY_LOAD_PARMS = ^MCI_OVLY_LOAD_PARMS;
IMPLEMENTATION
BEGIN
END.